﻿
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;

namespace MoreDots.SpellNames.Classes
{
    public class ArcherSpells : SpellBook
    {
        public static Spell HeavyShot
        {
            get
            {
                return new Spell() { Name = "Heavy Shot", Level = 1 };
            }
        }
        public static Spell StraightShot
        {
            get
            {
                return new Spell() { Name = "Straight Shot", Level = 2 };
            }
        }
        public static Spell RagingStrikes
        {
            get
            {
                return new Spell() { Name = "Raging Strikes", Level = 4 };
            }
        }
        public static Spell VenomousBite
        {
            get
            {
                return new Spell() { Name = "Venomous Bite", Level = 6 };
            }
        }
        public static Spell MiserysEnd
        {
            get
            {
                return new Spell() { Name = "Misery's End", Level = 8 };
            }
        }
        public static Spell Shadowbind
        {
            get
            {
                return new Spell() { Name = "Shadowbind", Level = 10 };
            }
        }
        public static Spell Bloodletter
        {
            get
            {
                return new Spell() { Name = "Bloodletter", Level = 12 };
            }
        }
        public static Spell RepellingShot
        {
            get
            {
                return new Spell() { Name = "Repelling Shot", Level = 15 };
            }
        }
        public static Spell QuickNock
        {
            get
            {
                return new Spell() { Name = "Quick Nock", Level = 18 };
            }
        }
        public static Spell Swiftsong
        {
            get
            {
                return new Spell() { Name = "Swiftsong", Level = 22 };
            }
        }
        public static Spell HawksEye
        {
            get
            {
                return new Spell() { Name = "Hawk's Eye", Level = 26 };
            }
        }
        public static Spell Windbite
        {
            get
            {
                return new Spell() { Name = "Windbite", Level = 30 };
            }
        }
        public static Spell QuellingStrikes
        {
            get
            {
                return new Spell() { Name = "Quelling Strikes", Level = 34 };
            }
        }
        public static Spell Barrage
        {
            get
            {
                return new Spell() { Name = "Barrage", Level = 38 };
            }
        }
        public static Spell BluntArrow
        {
            get
            {
                return new Spell() { Name = "Blunt Arrow", Level = 42 };
            }
        }
        public static Spell FlamingArrow
        {
            get
            {
                return new Spell() { Name = "Flaming Arrow", Level = 46 };
            }
        }
        public static Spell WideVolley
        {
            get
            {
                return new Spell() { Name = "Wide Volley", Level = 50 };
            }
        }
        public class CrossClass
        {
            public static Spell Featherfoot
            {
                get
                {
                    return PugilistSpells.Featherfoot;
                }
            }
            public static Spell Haymaker
            {
                get
                {
                    return PugilistSpells.Haymaker;
                }
            }
            public static Spell Mantra
            {
                get
                {
                    return PugilistSpells.Mantra;
                }
            }
            public static Spell SecondWind
            {
                get
                {
                    return PugilistSpells.SecondWind;
                }
            }
            public static Spell InternalRelease
            {
                get
                {
                    return PugilistSpells.InternalRelease;
                }
            }
            public static Spell Invigorate
            {
                get
                {
                    return LancerSpells.Invigorate;
                }
            }
            public static Spell Feint
            {
                get
                {
                    return LancerSpells.Feint;
                }
            }
            public static Spell KeenFlurry
            {
                get
                {
                    return LancerSpells.KeenFlurry;
                }
            }
            public static Spell BloodForBlood
            {
                get
                {
                    return LancerSpells.BloodForBlood;
                }
            }

            public static Spell Convalescence
            {
                get
                {
                    return GladiatorSpells.Convalescence;
                }
            }

            public static Spell Awareness
            {
                get
                {
                    return GladiatorSpells.Awareness;
                }
            }

            public static Spell Foresight
            {
                get
                {
                    return MarauderSpells.Foresight;
                }
            }

            public static Spell Fracture
            {
                get
                {
                    return MarauderSpells.Fracture;
                }
            }
            public static Spell MercyStroke
            {
                get
                {
                    return MarauderSpells.MercyStroke;
                }
            }
            public static Spell Bloodbath
            {
                get
                {
                    return MarauderSpells.Bloodbath;
                }
            }

            public static Spell Cure
            {
                get
                {
                    return ConjurerSpells.Cure;
                }
            }

            public static Spell Stoneskin
            {
                get
                {
                    return ConjurerSpells.Stoneskin;
                }
            }

            public static Spell Protect
            {
                get
                {
                    return ConjurerSpells.Protect;
                }
            }

            public static Spell Physick
            {
                get
                {
                    return ArcanistSpells.Physick;
                }
            }

            public static Spell Virus
            {
                get
                {
                    return ArcanistSpells.Virus;
                }
            }
        }

        public static class PvP
        {
            public static Spell ManaDraw
            {
                get
                {
                    return new Spell() { Name = "Mana Draw", Level = 30 };
                }
            }
            public static Spell Purify
            {
                get
                {
                    return new Spell() { Name = "Purify", Level = 30 };
                }
            }
            public static Spell Manasong
            {
                get
                {
                    return new Spell() { Name = "Mana song", Level = 30 };
                }
            }
            public static Spell Farshot
            {
                get
                {
                    return new Spell() { Name = "Farshot", Level = 30 };
                }
            }
            public static Spell BlastShot
            {
                get
                {
                    return new Spell() { Name = "Blast Shot", Level = 30 };
                }
            }
            public static Spell Enliven
            {
                get
                {
                    return new Spell() { Name = "Enliven", Level = 30 };
                }
            }
        }
    }
}
